package com.hy.controller;

import com.hy.service.FaceService;
import com.hy.utils.GsonUtils;
import com.hy.utils.HY_Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.Map;

/**
 * 人脸识别Controller
 * @Author: 是奕靜吖
 */
@RestController
@RequestMapping("/hy-frontuser-provider/face")
public class faceController {

    //人脸 - 业务
    @Autowired
    private FaceService fs;

    /**
     * 人脸检测
     * @param image_Bast64
     * @return
     */
    @PostMapping("/faceDetect.action")
    public HY_Result faceDetect(@RequestBody StringBuffer image_Bast64){
        return fs.facefaceDetect(image_Bast64);
    }

    /**
     * 人脸绑定
     * @param image_Bast64
     * @return
     */
    @PostMapping("/faceRegister.action")
    public HY_Result faceRegistration(@RequestBody StringBuffer image_Bast64) throws IOException {
        return fs.faceBinding(image_Bast64);
    }

    /**
     * 删除指定人脸
     * @param image_Bast64
     * @return
     * @throws IOException
     */
    @PostMapping("/faceDel.action")
    public HY_Result faceDel(@RequestBody StringBuffer image_Bast64) throws IOException {
        Map<String, Object> fc = fs.delPersonFace(image_Bast64);
        //判断是否 查询到该用户
        if (!ObjectUtils.isEmpty(fc) && fc.get("error_msg").equals("SUCCESS")){
            //删除成功
            return HY_Result.SUCCESS();
        }
        return HY_Result.FAILURE();
    }

    /**
     * 人脸更新
     * @param image_Bast64
     * @return
     * @throws IOException
     */
    @RequestMapping("/faceUp.action")
    public HY_Result faceUp(@RequestBody StringBuffer image_Bast64) throws IOException {
        Map<String, Object> fc = fs.faceUpdate(image_Bast64);
        //判断是否 查询到该用户
        if (!ObjectUtils.isEmpty(fc) && fc.get("error_msg").equals("SUCCESS")){
            //更新成功
            System.out.println(GsonUtils.toJson(fc));
            return HY_Result.SUCCESS();
        }
        return HY_Result.FAILURE();
    }

    /**
     * 人脸登录
     * @param image_Bast64
     * @return
     */
    @PostMapping("/faceLogin.action")
    public HY_Result faceLogin(@RequestBody StringBuffer image_Bast64) throws IOException {
        return fs.faceSearch(image_Bast64);
    }

    /**
     * 根据组名获取用户列表
     * @param group
     * @return
     */
    @RequestMapping("/faceList.action")
    public String faceList(@RequestBody String group) throws IOException {
        Map<String, Object> fc = fs.findPersonFaceList(group);
        //判断是否 查询到用户集合
        if (!ObjectUtils.isEmpty(fc) && fc.get("error_msg").equals("SUCCESS")){
            //获取成功
            return GsonUtils.toJson(fc);
        }
        return "该组中,未查到用户!";
    }

}
